(deftemplate Incendiul (declare (ordered TRUE)))

(deffunction start
    ()
    (printout t crlf "Ce anume a declansat incendiul?" crlf)
    (printout t "(pastrati urmatoarea forma: Incendiul ...)" crlf)
    (bind ?facts (str-cat "(" (readline) ")"))
    (assert-string ?facts)
)
(start)

(defrule clasaA
    (Incendiul $? hartie|hartii|lemn|lemne|haine $?)
    =>
    (printout t "Incendiul poate fi stins cu un extinctor care absoarbe caldura sau intarzie combustia." crlf)
    (printout t "Exemple: apa, solutii lichide bazate pe apa, solutii chimice de uscare." crlf)
)
(defrule clasaB
    (Incendiul $? petrol|gaz|gaze|grasime|grasimi $?)
    =>
    (printout t "Incendiul poate fi stins prin excluderea aerului, inhibarea raspandirii vaporilor de combustibili ")
    (printout t "sau intreruperea lantului de reactii ale combustibililor." crlf)
    (printout t "Exemple: substante chimice de uscare, dioxid de carbon, spuma, bromtrifluormetan." crlf)
)
(defrule clasaC
    (Incendiul $? disfunctionalitate|disfunctionalitati|electric|electrice|electronic|electronice $?)
    =>
    (printout t "Incendiul poate fi stins cu un agent nonconductor de electricitate, pentru a preveni un scurtcircuit." crlf)
    (printout t "Daca este posibil, se recomanda intreruperea sursei de electricitate." crlf)
    (printout t "Exemple: substante chimice de uscare, dioxid de carbon, bromtrifluormetan." crlf)
)
(defrule clasaD
    (Incendiul $? magneziu|sodiu|potasiu $?)
    =>
    (printout t "Incendiul poate fi stins prin sufocare si absorbtia caldurii cu ajutorul ")
    (printout t "unor substante chimice care nu reactioneaza cu metalele respective." crlf)
    (printout t "Exemple: pulberi de oxizi de bor si cocs ecranat." crlf)
)
(run)